﻿/*
倒填矩阵 
Time Limit:1000MS  Memory Limit:32768K


Description:
给出 N*N 的矩阵，从0开始依序倒填数，不足二位数的前面补0。
例如N=5时，其矩阵为： 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 

Input:
输入含有一些N（N<=10）。 
Output:
对每个N，输出所描述的矩阵。每个元素之间无空格，元素宽度为5。矩阵之间空一行。 
Sample Input:
5
Sample Output:
24   23   22   21   20
19   18   17   16   15
14   13   12   11   10
09   08   07   06   05
04   03   02   01   00
*/

#include <iostream>
#include <cstdlib>
using namespace std;

int main()
{
	static const int FIVE=5;
	for (unsigned n; cin>>n && n;)
	{
		unsigned squre=n*n-1;
		
		for (unsigned i=0; i<n; i++)
		{
			for (unsigned j=0; j<n; j++)
			{				
				if(squre<10)
					cout<<"   "<<0<<squre;
				else
				{
					cout.width(FIVE);
					cout<<right<<squre;
				}
				
				squre--;
			}
			cout<<endl;
		}
		cout<<endl;

	}

	return EXIT_SUCCESS;
}

